Selecting Friends In A Network Of Friends Loosely Coupled To A Subscription Service

ABSTRACT

A server and method are provided for suggesting a friend in a network of friends. In general, a user profile of a user of a user device is compared to user profiles of other users of a plurality of user devices that are also subscribers of subscription media services. A media collection of the user of the user device is compared to media collections of the other users that are also subscribers of subscription media services. One of the users of the other ones of the plurality of user devices having a user profile that has a high correlation to the user profile of the user of the first user device and a media collection that has a low correlation to the media collection of the user of the first user device is selected as the new friend for the user of the user device

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.11/609,962, entitled Matching Participants In A P2P RecommendationNetwork Loosely Coupled To A Subscription Service, which was filed onDec. 13, 2006, the contents of which are hereby incorporated byreference in their entirety.

FIELD OF THE INVENTION

The present invention relates to a Peer-to-Peer (P2P) mediarecommendation network and more specifically relates to matchingparticipants in a P2P recommendation network.

BACKGROUND

In recent years, there has been an enormous increase in the amount ofdigital media, such as music, available online. Services such as Apple'siTunes enable users to legally purchase and download music. Otherservices such as Yahoo! Music Unlimited and RealNetwork's Rhapsodyprovide access to millions of songs for a monthly subscription fee. As aresult, music has become much more accessible to listeners worldwide.However, the increased accessibility of music has only heightened along-standing problem for the music industry, which is namely the issueof linking audiophiles with new music that matches their listeningpreferences.

Many companies, technologies, and approaches have emerged to addressthis issue of music recommendation. Some companies have taken ananalytical approach. They review various attributes of a song, such asmelody, harmony, lyrics, orchestration, vocal character, and the like,and assign a rating to each attribute. The ratings for each attributeare then assembled to create a holistic classification for the song thatis then used by a recommendation engine. The recommendation enginetypically requires that the user first identify a song that he or shelikes. The recommendation engine then suggests other songs with similarattributes. Companies using this type of approach include Pandora(http://www.pandora.com), SoundFlavor (http://www.soundflavor.com),MusicIP (http://www.musicip.com), and MongoMusic (purchased by Microsoftin 2000).

Other companies take a communal approach. They make recommendationsbased on the collective wisdom of a group of users with similar musicaltastes. These solutions first profile the listening habits of aparticular user and then search similar profiles of other users todetermine recommendations. Profiles are generally created in a varietyof ways such as looking at a user's complete collection, the playcountsof their songs, their favorite playlists, and the like. Companies usingthis technology include Last.fm (http://www.last.fm), Music Strands(http://www.musicstrands.com), WebJay (http://www.webjay.org), Mercora(http://www.mercora.com), betterPropaganda(http://www.betterpropaganda.com), Loomia (http://www.loomia.com),eMusic (http://www.emusic.com), musicmatch(http://www.mmguide.musicmatch.com), genielab (http://genielab.com/),upto11 (http://www.upto11.net/), Napster (http://www.napster.com), andiTunes (http://www.itunes.com) with its celebrity playlists.

The problem with these traditional recommendation systems is that theyfail to consider peer influences. One approach that addresses this issueis commonly owned and assigned U.S. patent application Ser. No.11/484,130, entitled P2P NETWORK FOR PROVIDING REAL TIME MEDIARECOMMENDATIONS, filed Jul. 11, 2006, which is hereby incorporatedherein by reference in its entirety. In general, this approach providesfor real-time Peer-to-Peer (P2P) media recommendations. In such asystem, when the number of peer devices is large, there is a need for amethod of intelligently recommending “friends” to a particular user forthe purpose of identifying participants for a P2P recommendation group.

SUMMARY

The present invention relates to a server and a method for suggesting afriend in a network of friends. In general the server and method comparea user profile of a user of a first user device to user profiles ofusers of other ones of a plurality of user devices that are alsosubscribers of at least one of a number of subscription media services;compare a media collection of the user of the first user device to mediacollections of the users of the other ones of the plurality of userdevices that are also subscribers of at least one of the number ofsubscription media services; and select one of the users of the otherones of the plurality of user devices having a user profile that has ahigh correlation to the user profile of the user of the first userdevice and a media collection that has a low correlation to the mediacollection of the user of the first user device as the new friend forthe user of the first user device.

In an embodiment, one of the plurality of user devices is associatedwith the new friend and provides media recommendations to the firstdevice as media presentations identified by the media recommendationsare played by the one of the plurality of user devices.

Those skilled in the art will appreciate the scope of the presentinvention and realize additional aspects thereof after reading thefollowing detailed description of the preferred embodiments inassociation with the accompanying drawing figures.

BRIEF DESCRIPTION OF THE DRAWING FIGURES

The accompanying drawing figures incorporated in and forming a part ofthis specification illustrate several aspects of the invention, andtogether with the description serve to explain the principles of theinvention.

FIG. 1 illustrates a system incorporating a Peer-to-Peer (P2P) mediarecommendation network according to one embodiment of the presentinvention;

FIG. 2 illustrates the operation of the content identification functionof the central server of FIG. 1 according to one embodiment of thepresent invention;

FIG. 3 illustrates the operation of the friend recommendation functionof the central server of FIG. 1 according to one embodiment of thepresent invention;

FIG. 4 is a more detailed illustration of the operation of the friendrecommendation function of the central server of FIG. 1 according to oneembodiment of the present invention;

FIG. 5 illustrates the system of FIG. 1 with respect to a single P2Precommendation group according to one embodiment of the presentinvention;

FIG. 6 illustrates the operation of the P2P recommendation group of FIG.5 to exchange real-time media recommendations according to oneembodiment of the present invention;

FIG. 7 illustrates the operation of the recommendation engine of a peerdevice to automatically select a next media presentation to present froma number of media presentations including media presentations identifiedby recommendations from other peer devices in the P2P recommendationgroup;

FIG. 8 illustrates the system of FIG. 1 according to another embodimentof the present invention;

FIG. 9 illustrates the operation of the peer recommendation function ofthe central server of FIG. 8 according to one embodiment of the presentinvention;

FIG. 10 is a more detailed illustration of the operation of the peerrecommendation function of the central server of FIG. 8 according to oneembodiment of the present invention;

FIG. 11 is a block diagram of one of the peer devices according to oneembodiment of the present invention;

FIG. 12 is a block diagram of the central server of FIG. 1 according toone embodiment of the present invention; and

FIG. 13 is a block diagram of the central server of FIG. 8 according toone embodiment of the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The embodiments set forth below represent the necessary information toenable those skilled in the art to practice the invention and illustratethe best mode of practicing the invention. Upon reading the followingdescription in light of the accompanying drawing figures, those skilledin the art will understand the concepts of the invention and willrecognize applications of these concepts not particularly addressedherein. It should be understood that these concepts and applicationsfall within the scope of the disclosure and the accompanying claims.

FIG. 1 illustrates a system 10 incorporating a P2P recommendationnetwork for providing real time song recommendations according to oneembodiment of the present invention. Note that while the discussionherein focuses on song recommendations for clarity and ease ofdiscussion, the present invention is equally applicable to providingrecommendations for other types of media presentations such as videopresentations, as will be apparent to one of ordinary skill in the artupon reading this disclosure. Exemplary video presentations are movies,television programs, and the like.

In general, the system 10 includes a number of peer devices 12-1 through12-N connected to a central server 14 via a network 16, which may be adistributed public network such as, but not limited to, the Internet.The peer devices 12-1 through 12-N and the central server 14 form theP2P recommendation network. The system 10 also includes a number ofsubscription music services 18-1 through 18-M, where users 20-1 through20-N of the peer devices 12-1 through 12-N are either subscribers of oneor more of the subscription music services 18-1 through 18-M ornon-subscribers. Note that while multiple subscription music services18-1 through 18-M are shown, the system 10 may include any number of oneor more subscription music services.

The peer devices 12-1 through 12-N may be, for example, personalcomputers, portable media players, mobile telephones, Personal DigitalAssistants (PDAs), or the like having audio playback and networkcapabilities. Using the peer device 12-1 as an example, the peer device12-1 includes a music player 22-1, a recommendation engine 24-1, a musiccollection 26-1, and a registry 28-1. Note that this discussion isequally applicable to all of the peer devices 12-1 through 12-N. Themusic player 22-1 may be implemented in software, hardware, or acombination of hardware and software. In general, the music player 22-1operates to play songs from the music collection 26-1. Therecommendation engine 24-1 may be implemented in software, hardware, ora combination of hardware and software. The recommendation engine 24-1may alternatively be incorporated into the music player 22-1. The musiccollection 26-1 includes any number of songs stored in one or moredigital storage units such as, for example, one or more hard-discdrives, one or more memory cards, internal Random-Access Memory (RAM),one or more associated external digital storage devices, or the like.Note that if the peer device 12-1 includes a log-in feature, the musiccollection 26-1 may vary depending on the user 20-1 that is currentlylogged-in at the peer device 12-1.

The registry 28-1 operates to store a registry entry for each song inthe music collection 26. In one embodiment, each registry entry includesa Globally Unique Identifier (GUID) for the corresponding song in themusic collection 26-1 and a reference to the song in the local storageof the peer device 12-1. In addition or as an alternative to the GUID,the registry entry may include metadata identifying the correspondingsong such as, for example, the title and artist of the song. Theregistry entry may also include a Uniform Resource Locator (URL) orother network reference to the song at one or more remote contentsources such as one or more of the subscription music services 18-1through 18-M, a score of the song computed by the recommendation engine24-1 as discussed below, and a status of the song, where the status maybe an indicator of download progress if the song is currently beingdownloaded from one of the subscription music services 18-1 through18-M.

In operation, each time a song is played by the music player 22-1, therecommendation engine 24-1 operates to provide a recommendationidentifying the song to a number of other peer devices associated withother users in a P2P recommendation group of the user 20-1 of the peerdevice 12-1. In one embodiment, the P2P recommendation group of the user20-1 of the peer device 12-1 includes a number of the other users 20-2through 20-N of the other peers devices 12-2 through 12-N that are on a“friends list” of the user 20-1 of the peer device 12-1. Therecommendation does not include the song. In one embodiment, therecommendation may be a recommendation file including the GUID for thesong and optionally the URL or other network reference enabling theother peer devices to obtain the song from one or more of thesubscription music services 18-1 through 18-M. In addition, as discussedbelow in detail, the recommendation engine 24-1 operates toprogrammatically, or automatically, select a next song to be played bythe music player 22-1 from a group of songs including songs identifiedby recommendations received from one or more of the other peer devices12-2 through 12-N in the P2P recommendation group of the peer device12-1 based on user preferences of the user 20-1 of the peer device 12-1.If the selected song is not stored locally at the peer device 12-1, thepeer device 12-1 may obtain the selected song from one of thesubscription music services 18-1 through 18-M.

In this embodiment, the central server 14 includes a contentidentification function 30, a friend recommendation function 32, and aproxy function 34. Note that while the central server 14 is illustratedas a single server, it may alternatively be implemented as a number ofservers that operate in a collaborative fashion for purposes of loadbalancing and redundancy. The content identification function 30 isoptional and may be implemented in software, hardware, or a combinationthereof. In operation, the content identification function 30 identifiessongs in the music collections 26-1 through 26-N of the users 20-1through 20-N of the peer devices 12-1 through 12-N by comparingidentification parameters for the songs to content descriptors in acontent descriptors database 36. The content descriptors database 36operates to store a content descriptor for each of a number of songsknown to the central server 14. In one embodiment, the contentdescriptors database 36 stores a content descriptor for each song hostedby one or more of the subscription music services 18-1 through 18-M.Each content descriptor may include one or more digital fingerprints forthe associated song, the GUID for the song, metadata for the song, and aURL for the song at one or more of the subscription music services 18-1through 18-M. The metadata for the song may include, for example, thetitle of the song, artist, album, date of release, lyrics, an albumcover image, and the like.

The friend recommendation function 32 may be implemented in software,hardware, or combination thereof. In general, using the peer device 12-1as an example, the friend recommendation function 32 operates to selectfriends, or new friends, for the user 20-1 of the peer device 12-1 uponrequest. Note that friends may also be entered manually by the user20-1. Generally, the friend recommendation function 32 selects newfriends for the peer device 12-1 based on information stored in a useraccounts database 38. For each of the users 20-1 through 20-N, the useraccounts database 38 stores a user account. Using the user 20-1 as anexample, the user account of the user 20-1 includes subscriber statusinformation indicating whether the user 20-1 is a subscriber of one ormore of the subscription music services 18-1 through 18-M or anon-subscriber, a list of songs in the music collection 26-1, and a userprofile. The user account may also include a friends list for the user20-1 of the peer device 12-1. In addition or alternatively, the friendslist may be stored by the peer device 12-1. The friends list identifiesone or more of the other users 20-2 through 20-N in the P2Precommendation group of the user 20-1 of the peer device 12-1. The useraccount may also include a play history of the peer device 12-1 and anonline status of the peer device 12-1.

The user profile of the user 20-1 stored in the corresponding useraccount includes statistical information describing the music collection26-1 such as, for example, a genre distribution, an artist distribution,and a release year distribution. In addition or alternatively, the userprofile may include statistical information describing the songs in theplay history of the user 20-1 of the peer device 12-1 such as, forexample, a genre distribution, an artist distribution, and a releaseyear distribution. In addition, the user profile may include informationidentifying the user 20-1 such as a name, address, e-Mail address, andthe like and demographic information describing the user 20-1 such asage, sex, marital status, and the like.

Note that the list of songs in the music collection 26-1 stored in thecorresponding user account may be generated by the central server 14 invarious manners. In a first embodiment, the songs in the musiccollection 26-1 are identified by the content identification function30. In another embodiment, the list of songs in the music collection26-1 may be generated by monitoring recommendations from the peer device12-1 provided to others of the peer devices 12-1 through 12-N via theproxy function 34.

The proxy function 34 may be implemented in software, hardware, or acombination thereof. In general, the proxy function 34 operates as anintermediary for sending recommendations among the peer devices 12-1through 12-N. In addition, the proxy function 34 may perform variousfunctions such as filtering recommendations based on various filteringcriteria, monitoring recommendations to ascertain play histories for theusers 20-1 through 20-N of the peer devices 12-1 through 12-N, andmonitoring recommendations to generate the lists of songs in the musiccollections 26-1 through 26-N stored in the user accounts database 38.

The subscription music services 18-1 through 18-M may each be a servicehosted by a server connected to the network 16. Exemplary subscriptionbased music services that may be modified to operate according to thepresent invention are Yahoo! Music Unlimited digital music service andRealNetwork's Rhapsody digital music service. Note that one or more ofthe subscription music services 18-1 through 18-M may alternatively behosted by the central server 14. Further, while the subscriptionservices 18-1 through 18-M are discussed herein as music services, thepresent invention is not limited thereto. For example, each of thesubscription services 18-1 through 18-M may alternatively be videoservices. Still further, some of the subscription services 18-1 through18-M may be music services while others are video services.

FIG. 2 illustrates the operation of the content identification function30 according to one embodiment of the present invention. While thisexample focuses on the identification of multiple songs, the process isequally applicable to a single song. First, the peer device 12-1discovers the music collection 26-1 (step 100). For example, the peerdevice 12-1 may scan the local storage of the peer device 12-1 or aselect portion thereof for songs. As another example, the peer device12-1 may detect new songs downloaded from a remote content source,imported from a CD, or the like.

The peer device 12-1 then provides one or more identification parametersfor each of the songs to the content identification function 30 (step102). In a first embodiment, the identification parameters include oneor more digital fingerprints for each of the songs. In order to generatethe fingerprints, the peer device 12-1 may analyze one or more segmentsof a song to determine, for example, beats-per-Minute and/or compute aFast Fourier Transform (FFT). The segments of the song analyzed togenerate the fingerprints may be selected at random or in somepredetermined fashion. For a more detailed discussion of generatingfingerprints for a song and identifying the song based on thefingerprints, see U.S. Pat. No. 6,990,453, entitled SYSTEM AND METHODSFOR RECOGNIZING SOUND AND MUSIC SIGNALS IN HIGH NOISE AND DISTORTION,issued Jan. 24, 2006, which is hereby incorporated by reference in itsentirety.

In a second embodiment, the identification parameters include one ormore samples of each of the songs, rather than fingerprints. The contentidentification function 30 may then generate fingerprints for the songsusing the samples of the songs. In a third embodiment, theidentification parameters include metadata describing each of the songsand optionally fingerprints for a select number of the songs. Thefingerprints of the select number of songs may be used for verificationpurposes in order to determine whether the peer device 12-1 is spoofingthe content identification function 30 with metadata for songs that arenot in fact stored in the music collection 26-1 of the peer device 12-1.In a fourth embodiment, the identification parameters include metadatadescribing each of the songs and one or more samples of a select numberof the songs. The samples of the select number of songs may be used togenerate fingerprints for the songs, which may then be used forverification purposes as described above.

The content identification function 30 then identifies the songs usingthe song identification parameters and the content descriptors in thecontent descriptors database 36 (step 104). The manner in which thesongs are identified varies depending on the identification parameters.If the identification parameters are fingerprints for the songs, thecontent identification function 30 may identify the songs by comparingthe fingerprints to the fingerprints of the content descriptors in thecontent descriptors database 36. A song is identified when thefingerprints for the song match the fingerprints of a particular contentdescriptor. If the identification parameters are samples of the songs,the content identification function 30 may generate fingerprints for thesongs from the samples and then identify the songs by comparing thefingerprints to the fingerprints of the content descriptors. If theidentification parameters include metadata describing the songs, thecontent identification function 30 may identify the songs by comparingthe metadata to the metadata of the content descriptors. When themetadata of a song matches the metadata of a particular contentdescriptor, the song is identified as the song corresponding to thematching content descriptor.

In this example, once the songs are identified, the GUIDs for the songsfrom the corresponding content descriptors are provided to the peerdevice 12-1 (step 106). Optionally, the metadata for the songs and theURLs for obtaining the songs from one or more of the subscription musicservices 18-1 through 18-M may also be provided to the peer device 12-1.The peer device 12-1 then generates registry entries for the songs inthe registry 28-1 (step 108). The registry entries may include the GUIDsfor the songs. In addition or as an alternative to the GUIDs, theregistry entries may include metadata describing the songs. The registryentries may also include URLs for the songs. The metadata provided tothe peer device 12-1 may additionally or alternatively be used to add,update, or correct metadata for the songs stored in the correspondingsong files. Note that in an alternative embodiment, the registry entriesmay be implemented within the headers of the corresponding song files.

It should be noted that in addition to or as an alternative to thecontent identification function 30, various schemes may be used toobtain or otherwise provide the GUIDs for the songs in the musiccollections 26-1 through 26-N. For example, if the songs are downloadedfrom a remote content source such as one of the subscription musicservices 18-1 through 18-M, the GUIDs may be provided along with thesongs or be included as metadata within the song files. As anotherexample, if the songs are imported from a Compact Disc (CD), the GUIDsfor the songs may be obtained from a remote database as part of theimporting process. More specifically, when importing the songs from theCD, information such as, for example, the number of tracks on the CD andthe length of each track may be provided to a remote service such asGracenote (http://www.gracenote.com). In response, the remote servicemay provide the GUIDs and optionally metadata to the corresponding peerdevice 12-1 through 12-N for each of the songs imported from the CD.

FIG. 3 illustrates the operation of the friend recommendation function32 of the central server 14 according to one embodiment of the presentinvention. Using the peer device 12-1 as an example, the peer device12-1 first sends a request for new friends to the friend recommendationfunction 32 (step 200). The request may be initiated by the user 20-1when the user 20-1 desires to locate new friends for the P2Precommendation group of the user 20-1 of the peer device 12-1. The P2Precommendation group is defined by, for example, the friends list of theuser 20-1 of the peer device 12-1. The peer device 12-1 receivesrecommendations from the other peer devices of the users in the P2Precommendation group of the user 20-1 and may further providerecommendations to the other peer devices of the users in the P2Precommendation group of the user 20-1. The request may be initiated whenthe user 20-1 currently has no friends in the user's friends list orwhen the user 20-1 desires to add one or more friends to the user'sfriends list. In addition, the request may indicate the number of newfriends that the user 20-1 desires to locate.

Upon receiving the request at the central server 14, the friendrecommendation function 32 identifies new friends for the user 20-1 ofthe peer device 12-1 (step 202). As discussed below, the friendrecommendation function 32 selects the new friends from the other users20-2 through 20-N of the other peer devices 12-2 through 12-Ndifferently depending on whether the user 20-1 is a subscriber of one ormore of the subscription music services 18-1 through 18-M or anon-subscriber. Once the new friends are selected, the friendrecommendation function 32 may update the friends list of the user 20-1to include the new friends (step 204). Note that the recommendationengine 32 may request approval from the user 20-1 before adding the newfriends to the friends list of the user 20-1. The friend recommendationfunction 32 may also provide the updated friends list to the peer device12-1 (step 206). By adding the new friends to the friends list of theuser 20-1 and optionally providing the updated friends list to the peerdevice 12-1, the central server 14 effects addition of the peer devicesassociated with the new friends to the P2P recommendation group of theuser 20-1 of the peer device 12-1.

FIG. 4 is a more detailed illustration of the operation of the friendrecommendation function 32 according to one embodiment of the presentinvention. Again, the peer device 12-1 and the user 20-1 are used as anexample. In response to a request for new friends from the peer device12-1, the friend recommendation function 32 determines whether the user20-1 is a subscriber of one or more of the subscription music services18-1 through 18-M or a non-subscriber (step 300). This determination maybe made by examining the user account of the user 20-1. If the user 20-1is a subscriber, the friend recommendation function 32 compares the userprofile and the list of songs in the music collection 26-1 stored in theuser account of the user 20-1 to the user profiles and the list of songsin the music collections of a number of the other users 20-2 through20-N that are also subscribers of one or more of the subscription musicservices 18-1 through 18-M (step 302).

The friend recommendation function 32 then selects a number of the othersubscribers having user profiles that have a high correlation to theuser profile of the user 20-1 and music collections that have a lowcorrelation to the music collection 26-1 of the user 20-1 at the peerdevice 12-1 as new friends for the user 20-1 of the peer device 12-1(step 304). As used herein, in one embodiment, a low correlation betweentwo music collections occurs when the two music collections have lessthan a static or dynamic threshold number of songs in common. Forexample, a number of the other subscribers with less than X songs incommon with the user 20-1 may be said to have a low correlation in musiccollections, where X may be a static threshold or a dynamic thresholdselected such that the desired number of new friends are selected. Inanother embodiment, a low correlation between two music collectionsoccurs when less than a static or dynamic threshold percentage of thesongs in one of the music collections is also in the other musiccollection.

In a similar fashion, two user profiles have a high correlation when thestatistical information in the user profiles are substantially similarin that they indicate that the users like the same genres of music, thesame artists, the same time period, or any combination thereof. Morespecifically, the statistical information may include, for example, agenre distribution, an artist distribution, and a release yeardistribution. The genre distribution for a user may be computed bydetermining the number of songs in the corresponding music collection ineach of a number of genres and dividing the number of songs in eachgenre by the total number of songs in the music collection in order tonormalize the results. In a similar fashion, the artist distribution andthe release year distribution may be computed. Two user profiles mayhave a high correlation when one or more of the genre distributions, theartist distributions, and the release year distributions for the twouser profiles are substantially the same. For example, a scoreindicative of a similarity of the statistical information from two userprofiles may be generated. The score may then be compared to a thresholdscore to determine whether the two profiles are substantially similar(i.e., that the corresponding users have similar tastes in music). Thescore may be generated using, for example, a least mean squaredalgorithm that compares the statistical information for the twoprofiles.

Note that when the user 20-1 is a subscriber, it is beneficial to selectnew friends having music collections that have a low correlation to themusic collection 26-1 of the user 20-1 such that the peer device 12-1 ismore likely to receive recommendations for new songs that are notalready in the music collection 26-1. Thus, it enables the user 20-1 toexperience new songs. Further, by selecting users having user profilesthat have a high correlation to the user profile of the user 20-1, thefriend recommendation function 32 ensures that the new friends havetastes in music similar to the tastes of the user 20-1.

If the user 20-1 is a non-subscriber, the friend recommendation function32 compares the music collection 26-1 to the music collections of othersof the users 20-1 through 20-N that are also non-subscribers (step 306).More specifically, the friend recommendation function 32 compares thelist of songs in the music collection 26-1 stored in the user account ofthe user 20-1 to the lists of songs for other ones of the users 20-1through 20-N that are also non-subscribers. The friend recommendationfunction 32 then selects a number of the other non-subscribers havingmusic collections that have a high correlation with the music collection26-1 of the user 20-1 as the new friends for the user 20-1 of the peerdevice 12-1 (step 308). As used herein, in one embodiment, a highcorrelation between two music collections occurs when the two musiccollections have greater than a static or dynamic threshold number ofsongs in common or have greater than a static or dynamic percentage oftheir songs in common. For example, a number of the othernon-subscribers having more than X songs in common with the user 20-1may be said to have a high correlation in music collections, where X maybe a static threshold or a dynamic threshold selected such that thedesired number of new friends is selected.

Note that when the user 20-1 is a non-subscriber, it is beneficial toselect new friends having music collections that have a high correlationto the music collection 26-1 of the user 20-1 such that the peer device12-1 is more likely to receive recommendations for songs that arealready in the music collection 26-1. This is beneficial because thepeer device 12-1 is unable to access new songs at the subscription musicservices 18-1 through 18-M. Also note that the friend recommendationfunction 32 may also consider other user profile information, playhistory, user preferences, or the like when selecting the new friendsfor the user 20-1 of the peer device 12-1.

FIG. 5 illustrates the system 10 with respect to the P2P recommendationgroup of the user 20-1 of the peer device 12-1. As an example, the users20-2 and 20-3 of the peer devices 12-2 and 12-3 are on the friends listof the user 20-1, and user 20-4 of the peer device 12-4 may be an newfriend of the user 20-1 identified by the friend recommendation function32 of the central server 14 and added to the friends list of the user20-1. As such, according to one embodiment of the present invention,recommendations are exchanged between the peer devices 12-1 through 12-4in real-time, or substantially in real-time, as songs are played.

FIG. 6 illustrates the exchange of recommendations between the peerdevices 12-1 through 12-4 according to one embodiment of the presentinvention. In this example, the peer device 12-2 first plays a song and,in response, provides a song recommendation identifying the song to theproxy function 34 of the central server 14 (steps 400-402). Optionally,the proxy function 34 may process the recommendation to provide variousfunctions. Using the peer device 12-1 as an example, the proxy function34 may determine whether the recommended song is included in the musiccollection 26-1 of the user 20-1 of the peer device 12-1 by comparing,for example, the GUID from the recommendation to the list of songs inthe music collection 26-1. If the recommendation is for a song that isnot part of the music collection 26-1 of the user 20-1 of the peerdevice 12-1, the proxy function 34 may insert a URL for obtaining thesong from one or more of the subscription music services 18-1. In oneembodiment, the proxy function 34 inserts a URL(s) for obtaining thesong from one or more of the subscription music services 18-1 through18-M to which the user 20-1 is subscribed or a URL for one of thesubscription music services 18-1 through 18-M that is preferred by theuser 20-1.

The proxy function 34 may additionally or alternatively filterrecommendations based on various criteria. For example, the proxyfunction 34 may filter recommendations such that the peer device 12-1only receives recommendations for songs in the music collection 26-1.This may be beneficial if the user 20-1 is a non-subscriber. As anotherexample, the proxy function 34 may filter recommendations such that thepeer device 12-1 only receives recommendations for songs in the musiccollection 26-1 or accessible to the peer device 12-1 from one or moreof the subscription music services 18-1 through 18-M. This may bebeneficial where the user 20-1 is a subscriber of one or more of thesubscription music services 18-1 through 18-M. The proxy function 34 mayalso filter the recommendations based on filtering criteria such as, forexample, user, genre, artist, title, album, lyrics, date of release, orthe like. The filtering criteria may be defined by the user 20-1 of thepeer device 12-1.

The proxy function 34 may also monitor the recommendations to generateand store the play history for users 20-1 through 20-4 of the peerdevices 12-1 through 12-4. Using the user 20-1 as an example, the playhistory may include a list of GUIDs and time stamps corresponding to therecommendations received by the proxy function 34 from the peer device12-1 while the user 20-1 is logged-in or otherwise using the peer device12-1.

The proxy function 34 forwards the recommendation to the peer device12-1 (step 404). While not illustrated for clarity and ease ofdiscussion, the proxy function 34 may also send the recommendation tothe peer devices 12-3 and 12-4. Note that the proxy function 34 mayidentify the peer devices 12-1, 12-3, and 12-4 to which therecommendation is to be forwarded using, for example, the friends listof the user 20-2 of the peer device 12-2 stored in the user accountsdatabase 38. Alternatively, the recommendation from the peer device 12-2may identify the desired recipients of the recommendation.

Like the peer device 12-2, the peer device 12-3 also plays a song andsends a song recommendation to the peer device 12-1 via the proxyfunction 34 of the central server 14 (steps 406-410). Again, while notillustrated for clarity, the recommendation for the song may also beprovided to the peer devices 12-2 and 12-4 via the proxy function 34 ofthe central server 14. Likewise, the peer device 12-4 also plays a songand sends a song recommendation to the peer device 12-1 via the proxyfunction 34 of the central server 14 (steps 412-416). Again, while notillustrated for clarity, the recommendation for the song may also beprovided to the peer devices 12-2 and 12-3 via the proxy function 34 ofthe central server 14.

The recommendation engine 24-1 of the peer device 12-1 may optionallyfilter the recommendations from the other peer devices 12-2 through 12-4(step 418). Note that if the proxy function 34 has already filtered therecommendations, no filtering or limited filtering may be desired at therecommendation engine 24-1. Based on user preferences, therecommendation engine 24-1 automatically selects a next song to playfrom the songs identified by the recommendations received from the otherpeer devices 12-2 through 12-4, optionally songs identified bypreviously received recommendations from the peer devices 12-2 through12-4, and optionally one or more songs from the music collection 26-1(step 420). In the preferred embodiment discussed below, the songsidentified by the recommendations from the other peer devices 12-2through 12-4 and the songs from the music collection 26-1 are scoredbased on the user preferences. Then, based on the scores, therecommendation engine 24-1 selects the next song to play.

Once the next song to play is selected, the peer device 12-1 obtains theselected song (step 422). If the selected song is part of the musiccollection 26-1, the peer device 12-1 obtains the selected song from themusic collection 26-1. If the selected song is not part of the musiccollection 26-1 and the user 20-1 is a subscriber to one or more of thesubscription music services 18-1 through 18-M, the recommendation engine24-1 obtains the selected song from one of the subscription musicservices 18-1 through 18-M. Note that in one embodiment, therecommendations include the GUIDs of the corresponding songs. In orderto determine whether the recommended songs are part of the musiccollection 26-1 of the user 20-1 of the peer device 12-1, therecommendation engine 24-1 may compare the GUIDs from therecommendations to the GUIDs of the songs in the music collection 26-1stored in the registry 28-1. Once obtained, the selected song is played(step 424), and a recommendation for the song is provided to the otherpeer devices 12-2 through 12-4 via the proxy function 34 (steps426-432).

Returning to step 420, the recommendation engine 24-1 may provide adownload queue for downloading songs or previews of songs using abackground process such that the songs or previews will be availablewhen desired to be played. If the user 20-1 is a subscriber to one ormore of the subscription music services 18-1 through 18-M, songs havinga score greater than a first threshold that are not already in the musiccollection 26-1 are added to the download queue such that the songs aredownloaded from one or more of the subscription music services 18-1through 18-M. Registry entries for the songs may be generated and addedto the registry 28-1 before, during, or after download. Songs having ascore less than the first threshold but greater than a second thresholdmay be added to the download queue such that previews of the songs aredownloaded from a remote source such as one or more of the subscriptionmusic services 18-1 through 18-M.

FIG. 7 illustrates the process of automatically selecting a song to playfrom the received recommendations and locally stored songs at the peerdevice 12-1 according to one embodiment of the present invention.However, the following discussion is equally applicable to the peerdevices 12-2 through 12-N. First, the user preferences for the user 20-1of the peer device 12-1 are obtained (step 500). The user preferencesmay include a weight or priority assigned to each of a number ofcategories such as, but not limited to, user, genre, decade of release,and availability. The user preferences may be obtained from the user20-1 during an initial configuration of the recommendation engine 24-1.In addition, the user preferences may be updated by the user 20-1 asdesired. The user preferences may alternatively be suggested by therecommendation engine 24-1 or the central server 14 based on the playhistory of the peer device 12-1 and the songs in the music collection26-1 of the peer device 12-1. The user preferences may be stored locallyat the peer device 12-1 or remotely at the central server 14 in the useraccounts database 38. If stored remotely, the recommendation engine 24-1may obtain the user preferences from the central server 14 when desired.

Once recommendations are received from the other peer devices 12-2through 12-4 (FIG. 5), the recommendation engine 24-1 of the peer device12-1 scores the songs identified by the recommendations based on theuser preferences (step 502). The recommendation engine 24-1 also scoresone or more local songs from the music collection 26-1 (step 504). Therecommendation engine 24-1 then selects the next song to play based, atleast on part, on the scores of the recommended and local songs (step506).

For more information regarding the real-time recommendations, scoring,and automatic selection process, the interested reader is directed toU.S. patent application Ser. No. 11/484,130, entitled P2P NETWORK FORPROVIDING REAL TIME MEDIA RECOMMENDATIONS, filed Jul. 11, 2006; U.S.patent application Ser. No. 11/609,945, entitled MAINTAINING A MINIMUMLEVEL OF REAL TIME MEDIA RECOMMENDATIONS IN THE ABSENCE OF ONLINEFRIENDS, filed Dec. 13, 2006; and U.S. patent application Ser. No.11/609,948, entitled SYSTEM AND METHOD FOR IDENTIFYING MUSIC CONTENT INA P2P REAL TIME RECOMMENDATION NETWORK, filed Dec. 13, 2006; all ofwhich are hereby incorporated herein by reference their entireties.

FIG. 8 illustrates the system 10′ according to another embodiment of thepresent invention. In general, while the system 10 discussed above isuser-centric, the system 10′ is device-centric. More specifically, inthis embodiment, the central server 14′ includes the contentidentification function 30, a peer recommendation function 32′, theproxy function 34, the content descriptors 36, and an accounts database38′. Using the peer device 12-1 as an example, the peer recommendationfunction 32′ selects others of the peer devices 12-2 through 12-N to addto a P2P recommendation group of the peer device 12-1. The new peerdevices for the P2P recommendation group are selected based on whetherthe peer device 12-1 has access to one or more of the subscription musicservices 18-1 through 18-M or more specifically based on whether anowner of the peer device 12-1 is a subscriber of one or more of thesubscription music services 18-1 through 18-M. The current user 20-1 ofthe peer device 12-1 may or may not be the owner of the peer device12-1.

The accounts database 38′ stores an account for each of the peer devices12-1 through 12-N. The accounts may be associated with the peer devices12-1 through 12-N via identifiers of the peer devices 12-1 through 12-Nor identifiers of the owners of the peer devices 12-1 through 12-N.Again, the owners may or may not be the current users 20-1 through 20-Nof the peer devices 12-1 through 12-N. Using the peer device 12-1 as anexample, the account of the peer device 12-1 includes subscriber statusinformation indicating whether the owner of the peer device 12-1 is asubscriber of one or more of the subscription music services 18-1through 18-M or a non-subscriber, a list of songs in the musiccollection 26-1 of the peer device 12-1, and a profile. The account mayalso include a recommender list for the peer device 12-1 identifyingothers of the peer devices 12-2 through 12-N in the P2P recommendationgroup of the peer device 12-1. In addition or alternatively, therecommender list may be stored by the peer device 12-1. The recommenderlist identifies one or more of the other peer devices 12-2 through 12-Nin the P2P recommendation group of the peer device 12-1. The account mayalso include a play history of the peer device 12-1 and an online statusof the peer device 12-1.

The profile of the peer device 12-1 stored in the corresponding accountincludes statistical information describing the music collection 26-1such as, for example, a genre distribution, an artist distribution, anda release year distribution. In addition or alternatively, the profilemay include statistical information describing the songs in the playhistory of the peer device 12-1 such as, for example, a genredistribution, an artist distribution, and a release year distribution.In addition, the profile may include information identifying the ownerof the peer device 12-1 such as a name, address, e-Mail address, and thelike and demographic information describing the owner such as age, sex,marital status, and the like.

Note that the list of songs in the music collection 26-1 stored in theaccount of the peer device 12-1 may be generated by the central server14′ in various manners. In a first embodiment, the songs in the musiccollection 26-1 are identified by the content identification function30. In another embodiment, the list of songs in the music collection26-1 may be generated by monitoring recommendations from the peer device12-1 provided to others of the peer devices 12-2 through 12-N via theproxy function 34.

FIG. 9 illustrates the operation of the peer recommendation function 32′of the central server 14′ according to one embodiment of the presentinvention. Using the peer device 12-1 as an example, the peer device12-1 first sends a request to the peer recommendation function 32′ fornew peer devices for the P2P recommendation group of the peer device12-1 (step 600). The request may be initiated by the user 20-1 when theuser 20-1 desires to locate new peer devices for the P2P recommendationgroup of the peer device 12-1. The P2P recommendation group is definedby, for example, the recommender list of the peer device 12-1. The peerdevice 12-1 receives recommendations from the other peer devices in theP2P recommendation group of the peer device 12-1 and may further providerecommendations to the other peer devices in the P2P recommendationgroup of the peer device 12-1. The request may be initiated when thepeer device 12-1 currently has no other peer devices in its P2Precommendation group or when the user 20-1 desires to add one or morepeer devices to the P2P recommendation group of the peer device 12-1. Inaddition, the request may indicate the number of new peer devices thatthe user 20-1 desires to locate.

Upon receiving the request at the central server 14′, the peerrecommendation function 32′ identifies new peer devices for the P2Precommendation group of the peer device 12-1 (step 602). As discussedbelow, the peer recommendation function 32′ selects the new peer devicesfrom the other peer devices 12-2 through 12-N differently depending onwhether the owner of the peer device 12-1 is a subscriber of one or moreof the subscription music services 18-1 through 18-M or anon-subscriber. Once the new peer devices are selected, the peerrecommendation function 32′ may update the recommender list of the peerdevice 12-1 to include the new peer devices (step 604). Note that thepeer recommendation function 32′ may request approval from the user 20-1before adding the new peer devices to the recommender list of the peerdevice 12-1. The peer recommendation function 32′ may also provide theupdated recommender list to the peer device 12-1 (step 606). By addingthe new peer devices to the recommender list of the peer device 12-1 andoptionally providing the updated recommender list to the peer device12-1, the central server 14′ effects addition of the new peer devices tothe P2P recommendation group of the peer device 12-1.

FIG. 10 is a more detailed illustration of the operation of the peerrecommendation function 32′ according to one embodiment of the presentinvention. Again, the peer device 12-1 is used as an example. Inresponse to a request for new peer devices from the peer device 12-1,the peer recommendation function 32′ determines whether the owner of thepeer device 12-1 is a subscriber of one or more of the subscriptionmusic services 18-1 through 18-M or a non-subscriber (step 700). Thisdetermination may be made by examining the account of the peer device12-1. If the owner of the peer device 12-1 is a subscriber (i.e., thepeer device 12-1 is a subscribing peer device), the peer recommendationfunction 32′ compares the profile of the peer device 12-1 and the listof songs in the music collection 26-1 stored in the account of peerdevice 12-1 to the profiles and the list of songs in the musiccollections of a number of the other peer devices 12-2 through 12-N thatare also subscribing peer devices (step 702).

The peer recommendation function 32′ then selects a number of the othersubscribing peer devices having profiles that have a high correlation tothe profile of the peer device 12-1 and music collections that have alow correlation to the music collection 26-1 of the peer device 12-1 asnew peer devices for the P2P recommendation group of the peer device12-1 (step 704). As used herein, in one embodiment, a low correlationbetween two music collections occurs when the two music collections haveless than a static or dynamic threshold number of songs in common. Forexample, a number of the other subscribing devices with less than Xsongs in common with the peer device 12-1 may be said to have a lowcorrelation in music collections, where X may be a static threshold or adynamic threshold selected such that the desired number of new peerdevices are selected. In another embodiment, a low correlation betweentwo music collections occurs when less than a static or dynamicthreshold percentage of the songs in one of the music collections arealso in the other music collection.

In a similar fashion, two profiles have a high correlation when thestatistical information in the profiles indicate that the peer deviceshost the same genres of music, the songs by the same artists, songs fromthe same time period, or any combination thereof. More specifically, thestatistical information may include, for example, a genre distribution,an artist distribution, and a release year distribution. The genredistribution for a peer device may be computed by determining the numberof songs in the corresponding music collection in each of a number ofgenres and dividing the number of songs in each genre by the totalnumber of songs in the music collection in order to normalize theresults. In a similar fashion, the artist distribution and the releaseyear distribution may be computed. Two profiles may have a highcorrelation when one or more of the genre distributions, the artistdistributions, and the release year distributions for the two profilesare substantially the same.

Note that when the owner of the peer device 20-1 is a subscriber, it isbeneficial to select new peer devices having music collections that havea low correlation to the music collection 26-1 of the peer device 12-1such that the peer device 12-1 is more likely to receive recommendationsfor new songs that are not already in the music collection 26-1. Thus,it enables the user 20-1 to experience new songs. Further, by selectingpeer devices having profiles that have a high correlation to the profileof the peer device 12-1, the peer recommendation function 32′ ensuresthat the owners or users of the new peer devices have tastes in musicsimilar to the tastes of the owner or user 20-1 of the peer device 12-1.

If the owner 20-1 of the peer device 12-1 is a non-subscriber, the peerrecommendation function 32′ compares the music collection 26-1 to themusic collections of others of the peer devices 12-2 through 12-N thatare also non-subscribing peer devices (step 706). More specifically, thepeer recommendation function 32′ compares the list of songs in the musiccollection 26-1 stored in the account of the peer device 12-1 to thelists of songs for ones of the peer devices 12-2 through 12-N that arealso non-subscribing peer devices. The peer recommendation function 32′then selects a number of the other non-subscribing peer devices havingmusic collections that have a high correlation with the music collection26-1 of the peer device 12-1 as the new peer devices for the P2Precommendation group of the peer device 12-1 (step 708). As used herein,in one embodiment, a high correlation between two music collectionsoccurs when the two music collections have greater than a static ordynamic threshold number of songs in common or have greater than astatic or dynamic percentage of their songs in common. For example, anumber of the other non-subscribing peer devices having more than Xsongs in common with the peer device 12-1 may be said to have a highcorrelation in music collections, where X may be a static threshold or adynamic threshold selected such that the desired number of new peerdevices are selected.

Note that when the owner of the peer device 12-1 is a non-subscriber, itis beneficial to select new peer devices having music collections thathave a high correlation to the music collection 26-1 of the peer device12-1 such that the peer device 12-1 is more likely to receiverecommendations for songs that are already in the music collection 26-1.This is beneficial because the peer device 12-1 is unable to access newsongs at the subscription music services 18-1 through 18-M. Also notethat the peer recommendation function 32′ may also consider otherprofile information, play history, user preferences, or the like whenselecting the new peer devices for the P2P recommendation group of thepeer device 12-1.

FIG. 11 is a block diagram of the peer device 12-1 according to oneembodiment of the present invention. This discussion is equallyapplicable to the other peer devices 12-2 through 12-N. In general, thepeer device 12-1 includes a control system 40 having associated memory42. In this example, the music player 22-1 and the recommendation engine24-1 are at least partially implemented in software and stored in thememory 42. The peer device 12-1 also includes a storage unit 44operating to store the music collection 26-1 and the registry 28-1 (FIG.1). The storage unit 44 may be any number of digital storage devicessuch as, for example, one or more hard-disc drives, one or more memorycards, RAM, one or more external digital storage devices, or the like.The music collection 26-1 and the registry 28-1 may alternatively bestored in the memory 42. The peer device 12-1 also includes acommunication interface 46 communicatively coupling the peer device 12-1to the network 16 (FIG. 1). The peer device 12-1 also includes a userinterface 48, which may include components such as a display, speakers,a user input device, and the like.

FIG. 12 is a block diagram of an exemplary embodiment of the centralserver 14. In general, the central server 14 includes a control system50 having associated memory 52. In this example, the contentidentification function 30, the friend recommendation function 32, andthe proxy function 34 are at least partially implemented in software andstored in the memory 52. The central server 14 also includes a storageunit 54 operating to store, for example, the content descriptorsdatabase 36 and the user accounts database 38 (FIG. 1). The storage unit54 may be any number of digital storage devices such as, for example,one or more hard-disc drives, one or more memory cards, RAM, one or moreexternal digital storage devices, or the like. The central server 14also includes a communication interface 56 communicatively coupling thecentral server 14 to the network 16 (FIG. 1). The central server 14 mayalso include a user interface 58, which may include components such as adisplay, speakers, a user input device, and the like.

FIG. 13 is a block diagram of an exemplary embodiment of the centralserver 14′. In general, the central server 14′ includes the controlsystem 50 having associated memory 52. In this example, the contentidentification function 30, the peer recommendation function 32′, andthe proxy function 34 are at least partially implemented in software andstored in the memory 52. The central server 14′ also includes thestorage unit 54 operating to store, for example, the content descriptorsdatabase 36 and the accounts database 38′ (FIG. 8). The storage unit 54may be any number of digital storage devices such as, for example, oneor more hard-disc drives, one or more memory cards, RAM, one or moreexternal digital storage devices, or the like. The central server 14′also includes the communication interface 56 communicatively couplingthe central server 14′ to the network 16 (FIG. 8). The central server14′ may also include the user interface 58, which may include componentssuch as a display, speakers, a user input device, and the like.

The present invention provides substantial opportunity for variationwithout departing from the spirit or scope of the present invention. Forexample, while the discussion herein focuses on song recommendations,the present invention is not limited thereto. The present invention isequally applicable to recommendations for other types of mediapresentations such as video presentations. Thus, the present inventionmay additionally or alternatively provide movie recommendations,television program recommendations, or the like. As another example,while the discussion above describes a system where recommendations areprovided from, for example, the peer device 12-1 to the other peerdevices 12-2 through 12-4 via the proxy function 34, the presentinvention is not limited thereto. The peer device 12-1 may alternativelyprovide recommendations to the other peer devices 12-2 through 12-4 viadirect P2P connections.

Those skilled in the art will recognize improvements and modificationsto the preferred embodiments of the present invention. All suchimprovements and modifications are considered within the scope of theconcepts disclosed herein and the claims that follow.

What is claimed is:
 1. A method of operating a server to suggest afriend in a network of friends comprising: comparing a user profile of auser of a first user device to user profiles of users of other ones of aplurality of user devices that are also subscribers of at least one of anumber of subscription media services; comparing a media collection ofthe user of the first user device to media collections of the users ofthe other ones of the plurality of user devices that are alsosubscribers of at least one of the number of subscription mediaservices; and selecting one of the users of the other ones of theplurality of user devices having a user profile that has a highcorrelation to the user profile of the user of the first user device anda media collection that has a low correlation to the media collection ofthe user of the first user device as the new friend for the user of thefirst user device
 2. The method of claim 1 wherein one of the pluralityof user devices is associated with the new friend and provides mediarecommendations to the first device as media presentations identified bythe media recommendations are played by the one of the plurality of userdevices.
 3. A server for suggesting a friend in a network of friendscomprising: a communication interface adapted to communicatively couplethe central server to a plurality of user devices via a network; atleast one processor; and memory storing executable software executableby the at least one processor whereby the server is operative to:compare a user profile of a user of a first user device to user profilesof users of other ones of a plurality of user devices that are alsosubscribers of at least one of a number of subscription media services;compare a media collection of the user of the first user device to mediacollections of the users of the other ones of the plurality of userdevices that are also subscribers of at least one of the number ofsubscription media services; and select one of the users of the otherones of the plurality of user devices having a user profile that has ahigh correlation to the user profile of the user of the first userdevice and a media collection that has a low correlation to the mediacollection of the user of the first user device as the new friend forthe user of the first user device
 4. The server of claim 3 wherein theone of the plurality of user devices associated with the new friendprovides media recommendations to the first user device as mediapresentations identified by the media recommendations are played by theone of the plurality of user devices.
 5. The server of claim 3 whereinif the user of the first user device is a non-subscriber of the numberof subscription media services, the server is further operative toselect the new friend for the user of the first user device from usersof other ones of the plurality of user devices that are alsonon-subscribers of the number of subscription media services.
 6. Theserver of claim 3 wherein to compare the media collection of the user ofthe first user device to the media collections of the users of the otherones of the plurality of user devices, the server is operative to, foreach one of the media collections of the users of the other ones of theplurality of user devices: determine a number of media presentationsthat the one of the media collections and the media collection of theuser of the first device have in common; wherein, if the number of mediapresentations that the one of the media collections and the mediacollection of the user of the first user device have in common is lessthan a threshold number of media presentations, the one of the mediacollections has a low correlation to the media collection of the user ofthe first user device.
 7. The server of claim 6 wherein the thresholdnumber of media presentations is a static threshold.
 8. The server ofclaim 6 wherein the threshold number of media presentations is a dynamicthreshold.
 9. The server of claim 3 wherein to compare the mediacollection of the user of the first device to the media collections ofthe users of the other ones of the plurality of user devices, the severis operative to, for each one of the media collections of the users ofthe other ones of the plurality of user devices: determine a percentageof media presentations in the media collection of the user of the firstuser device that are also in the media collections of the users of theother ones of the plurality of user devices; wherein, if the percentageof media presentations is less than a threshold percentage of mediapresentations, the one of the media collections has a low correlation tothe media collection of the user of the first user device.
 10. Theserver of claim 3 wherein the user profile of the user comprisesstatistical information including one or more of a group consisting of:a genre distribution, an artist distribution, and a release yeardistribution for the media collection of the user of the first userdevice, and the user profiles of the other ones of the plurality ofdevices comprise statistical information including one or more of agroup consisting of: a genre distribution, an artist distribution, and arelease year distribution for the media collections of the users of theother ones of the plurality of user devices.
 11. The server of claim 10wherein to compare the user profile of the user of the first user deviceto the user profiles of the users of the other ones of the plurality ofuser devices, the server is operative to, for each one of the userprofiles of the users of the other ones of the plurality of userdevices: determine whether the statistical information from the one ofthe user profiles is substantially similar to the statisticalinformation from the user profile of the user of the first user device;wherein, if the one of the user profiles is substantially similar to thestatistical information from the user profile of the user of the firstuser device, the one of the user profiles has a high correlation to theuser profile of the user of the first user device.
 12. The server ofclaim 11 wherein to determine whether the statistical information fromthe one of the user profiles is substantially similar to the statisticalinformation from the user profile of the user of the first user device,the server is operative to: generate a score indicative of a similarityof the statistical information from the one of the user profiles and thestatistical information from the user profile of the user of the firstuser device; and compare the score to a threshold to determine whetherthe statistical information from the one of the user profiles issubstantially similar to the statistical information from the userprofile of the user of the first user device.
 13. The server of claim 3wherein the server is further operative to: if the user of the firstuser device is a non-subscriber of the number of subscription mediaservices, select the new friend for the user of the first user devicefrom users of other ones of the plurality of user devices that are alsonon-subscribers of the number of subscription media services.
 14. Theserver of claim 13 wherein if the user of the first user device is anon-subscriber, to select the new friend, the server is operative to:compare a media collection of the user of the first user device to mediacollections of the users of the other ones of the plurality of userdevices that are also non-subscribers; and select one of the users ofthe other ones of the plurality of user devices having a mediacollection that has a high correlation to the media collection of theuser of the first user device as the new friend for the user of thefirst user device.
 15. The server of claim 14 wherein to compare themedia collection of the user of the first user device to the mediacollections of the users of the other ones of the plurality of userdevices, the server is operative to, for each one of the mediacollections of the users of the other ones of the plurality of userdevices: determine a number of media presentations that the one of themedia collections and the media collection of the user of the first userdevice have in common; wherein, if the number of media presentationsthat the one of the media collections and the media collection of theuser of the first user device have in common is greater than a thresholdnumber of media presentations, the one of the media collections has ahigh correlation to the media collection of the user of the first userdevice.
 16. The server of claim 15 wherein the threshold number of mediapresentations is a static threshold.
 17. The server of claim 15 whereinthe threshold number of media presentations is a dynamic threshold. 18.The server of claim 14 wherein to compare the media collection of theuser of the first user device to the media collections of the users ofthe other ones of the plurality of user devices, the server is operativeto, for each one of the media collections of the users of the other onesof the plurality of user devices: determine a percentage of mediapresentations in the media collection of the user of the first userdevice that are also in the media collections of the users of the otherones of the plurality of user devices; wherein, if the percentage ofmedia presentations is greater than a threshold percentage of mediapresentations, the one of the media collections has a high correlationto the media collection of the user of the first user device.
 19. Theserver of claim 3 wherein the server is further operative to add the newfriend to a friends list of the user of the first user device, whereinthe friends list defines a recommendation group of the user of the firstuser device.
 20. The server of claim 3 wherein the number ofsubscription media services is at least one subscription media service.